<?php
define('MAPS_HOST', 'maps.google.com.br');

// key google maps para localhost

define('KEY', 'ABQIAAAAnIZeAAUQnPBFgItkUMq0rBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxSSCsosKoeUyguFQSdwmdM2kG6utQ');


function achaLatLng($endereco) {

$delay = 0;

$base_url = 'http://' . MAPS_HOST . '/maps/geo?output=xml&key=' . KEY;

$geocode_pending = true;

$result = array();

while ($geocode_pending) {

$request_url = $base_url . '&q=' . urlencode($endereco);

$xml = simplexml_load_file($request_url) or print_debug('GMAPS url not loading',1);

$status = $xml->Response->Status->code;

if (strcmp($status, '200') == 0) {

// Successful geocode

$geocode_pending = false;

$coordinates = $xml->Response->Placemark->Point->coordinates;

$coordinatesSplit = explode(',', $coordinates);

// Format: Longitude, Latitude, Altitude

$lat = $coordinatesSplit[1];

$lng = $coordinatesSplit[0];

// CUIDADO: às vezes o endereço encontrado pelo gmaps

// é diferente daquele informado na oferta, o que acarreta

// sua alteração

// para ficar com o do gMaps descomentar

//$endereco = (string)$xml->Response->Placemark->address;

//$endereco = utf8_decode($endereco);

return array($endereco, $lat, $lng);


} else if (strcmp($status, '620') == 0) {

// 620 = esperar um pouco mais

$delay += 100000;

} else {

// failure to geocode

$geocode_pending = false;

echo('Address ' . $endereco . ' failed to geocoded. ');

echo('Received status ' . $status);

return array($endereco, 'NULL', 'NULL');

}

usleep($delay);

}

} //achaLatLng

include_once 'app/dao/dao_localidade.php';

error_reporting(E_ALL);
ini_set('display_errors',1);


$dao_localidade = new dao_localidade();

$id = intval($_POST["id_inicial"]);

$id_final = intval($_POST["id_final"]);

print_r($_POST);

while ( $id <= $id_final){
    
    $localidade = $dao_localidade->selectCidade($id);
    
//    print_r($localidade);
    
    $posicao = achaLatLng($localidade["CID_NOME"].", ". $localidade["EST_SIGLA"]);
    
    if ($posicao[1] != NULL){
        $dao_localidade->insertLatLng($id, $posicao[1], $posicao[2]);
    }else{
        echo("Erro as coordenadas da localidade $id");
    }
    
    print_r($posicao);
    
    $id++;
}


?>
